package com.example.carrierapp.ui.view;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

/**
 * Created by Aghnad on 2016/7/8.
 */
public class ListViewForScrollView extends ListView {
//    /**
//     * 外部调用设置，是否可以上拉加载数据，默认为false
//     * true 可以上拉加载
//     * false 不可以上拉加载
//     */
//    private boolean isLoadable = true;
//    /**
//     * 是否处于可上拉加载状态中，默认false表示已完成上拉加载
//     * true 正在上拉加载中
//     * false 上拉加载已经完成
//     */
//    private boolean isLoading = false;
//    /**
//     * 是否处于当前屏幕最后一个Item,是最后一个item时为true，默认为false
//     * true可以上拉加载状态
//     * false不可以上拉加载状态
//     */
//    private boolean isEndItem = false;
//    /**
//     * 是否还有更多数据
//     * true还有更多数据
//     * false没有更多数据
//     */
//    private boolean isMore = true;
//
//    /**
//     * 加载监听接口
//     */
//    private OnLoaderListener onLoaderListener;
//
//    private View footerView;
//    private LinearLayout footerLayout;
//    private ProgressBar footerProgress;
//    private TextView footerText;
    private static String TAG = "ListViewForScrollView";


    public ListViewForScrollView(Context context) {
        super(context);
//        initView(context);
    }

    public ListViewForScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
//        initView(context);
    }

    public ListViewForScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
//        initView(context);
    }

//    /**
//     * 初始化View
//     */
//    private void initView(Context context) {
//        //获取布局
//        footerView = LayoutInflater.from(context).inflate(R.layout.listview_footer, null); //获取底部加载控件
//        footerView.setClickable(false);//设置布局不可点击
//        footerLayout = (LinearLayout) footerView.findViewById(R.id.listview_footer);
//        footerProgress = (ProgressBar) footerView.findViewById(R.id.listview_footer_progress);
//        footerText = (TextView) footerView.findViewById(R.id.listview_footer_text);
//        //将上拉加载的布局加入ListView的底部
//        addFooterView(footerView);
//        //滑动监听事件
//        setOnScrollListener(this);
//    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expanSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expanSpec);
    }

//    /**
//     * 设置是否可以上拉加载
//     *
//     * @param enable true-可以上拉加载，false-不可以上拉加载
//     */
//    public void setLoadEnable(boolean enable) {
//        isLoadable = enable;
//    }
//
//
//
//    @Override
//    public void onScrollStateChanged(AbsListView view, int scrollState) {
//    /*
//     * 滑动状态改变监听事件
//     * scrollState = SCROLL_STATE_IDLE(0) 停止滑动
//     * scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滑动 ;
//     * scrollState = SCROLL_STATE_FLING(2) 手指做了抛的动作（手指离开屏幕前，用力滑了一下）;
//     *
//     */
//    }
//
//
//    @Override
//    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//        /*
//         * 滑动时会一直回调该方法，直到停止滑动。单击时回调一次该方法。
//         * firstVisibleItem表示当前屏幕显示的第一个listItem在整个listView里的位置(下标从0开始);
//         * visibleItemCount表示当前屏幕可见的listItem(部分显示的listItem也算)总数；
//         * totalItemCount表示listView里listItem总数。
//         *
//         */
//
//        Log.i(TAG, "totalItemCount:" + totalItemCount);
//        Log.i(TAG, "firstVisibleItem:" + firstVisibleItem);
//        Log.i(TAG, "visibleItemCount:" + visibleItemCount);
//        if (totalItemCount == 0) {//listview中的item个数为0，此时不显示底部加载布局
//            setShowFootLayout(false);
//        } else {//listView中的item个数不为0
//            setShowFootLayout(true);
//            //如果可以加载，并且处于最后一个item
//            if (isLoadable && totalItemCount == firstVisibleItem + visibleItemCount) {
//                isEndItem = true;
//            }
//        }
//    }
//
//    //加载监听方法，用于加载接口的实现
//    public void setLoaderListener(OnLoaderListener onLoaderListener) {
//        this.onLoaderListener = onLoaderListener;
//    }
//
//    // 加载回调接口，用于回调加载方法
//    public interface OnLoaderListener {
//        void onLoad();
//    }
//
//    //加载完毕调用方法
//    public void loadComplete() {
//        isLoading = false;
//        setShowFootLayout(true);
//    }
//
//    //设置是否还有更多数据
//    public void setMore(boolean isMore) {
//        this.isMore = isMore;
//    }
//
//    public boolean getIsEndItem() {
//        return isEndItem;
//    }
//
//    //设置显示底部布局
//    private void setShowFootLayout(boolean isShow) {
//        if (isShow) {//显示底部布局
//            footerLayout.setVisibility(VISIBLE);
//            if (isMore) {//加载中
//                footerProgress.setVisibility(View.VISIBLE);
//                footerText.setText("正在加载...");
//            } else {//加载已完成
//                footerProgress.setVisibility(View.GONE);
//                footerText.setText("没有更多了");
//            }
//        } else {//不显示底部布局
//            footerLayout.setVisibility(GONE);
//        }
//    }
}
